1. #{}
    1. 解读
      1. 使用#{}格式的语法在mybatis中使用Preparement语句来安全的设置值
      2. PreparedStatement ps = conn.prepareStatement(sql); ps.setInt(1,id);
    2. 例子
      1. 执行SQL:Select * from emp where name = #{employeeName}
      2. 参数:employeeName=>Smith
      3. 解析后执行的SQL:Select * from emp where name = ?
    3. #方式能够很大程度防止sql注入
  2. ${}
    1. 解读
      1. 有时你只是想直接在 SQL 语句中插入一个不改变的字符串。比如,像 ORDER BY
      2. $将传入的数据直接显示生成在sql中
      3. Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(sql);
    2. 例子
      1. 执行SQL:Select * from emp where name = ${employeeName}
      2. 参数:employeeName传入值为:Smith
      3. 解析后执行的SQL:Select * from emp where name =Smith
  3. 总结
    1. #方式能够很大程度防止sql注入,$方式无法防止Sql注入
    2. $方式一般用于传入数据库对象
    3. 使用$要么不允许用户输入这些字段,要么自行转义并检验。
    4. 一般能用#的就别用$